package com.yc.sole.framework.web;


import jakarta.servlet.http.HttpServletRequest;

import java.util.Collection;

/**
 * @author yizuomin
 * @date 2022/11/19 14:23
 **/
public interface SecurityAuthenticator {
    /**
     * 登录
     *
     * @param token
     * @param value
     */
    void login(String token, Object value);

    /**
     * 登出
     *
     * @param token
     */
    void logout(String token);

    /**
     * 登出
     */
    void logout(HttpServletRequest request);

    /**
     * 获取用户信息
     *
     * @param token
     * @return
     */
    <T extends BaseUserInfo> T getUserInfo(String token);

    /**
     * 获取白名单uri
     *
     * @return
     */
    Collection<String> getWhiteList();

    /**
     * 是否开启鉴权
     *
     * @return
     */
    boolean enableAuthentication();
}
